#ifndef MODELMGR_H
#define MODELMGR_H
#include "Model.h"
#include "Report.h"
#include <map>
#include <utility>
#include "MyExceptions.h"
#include <iostream>

using namespace std;

typedef map<string,pair<Texture *,int>> mapaTextures;
typedef map<string,pair<Texture *,int>>::iterator itMapaTextures;

typedef map<string,pair<Animation *,int>> mapaAnimations;
typedef map<string,pair<Animation *,int>>::iterator itMapaAnimation;

class ModelMgr
{
private:
	mapaTextures mapaModelsTextures;
	mapaAnimations mapaModelsAnimations;
	Report * report;
	NoAnimationException noAnimationException;
	NoTextureException noTextureException;
public:
	ModelMgr();
	Model * newModel(int _cantTextures,int _cantAnimations,Animation * _animations,Texture * _textures,string _name);
	void deleteModel(Model * _model);
	Report * getReport();
};
#endif